$(() => {
    // 监听按钮点击事件
    $('button[name="use-coupon"]').click(function (event) {
        event.preventDefault();
        // 获取输入框中的优惠码
        const couponCode = $('.coupon_code').val().trim();

        // 检查优惠码是否为空
        if (couponCode.length!==8) {
            layer.msg("请输入正确的优惠码",{icon:0});
            return;
        }

        // 示例：发送优惠码到服务器进行验证
        const url = '/api/validate-coupon'; // 替换为你的后端接口地址
        $.ajax({
            url: "/front/api/v1/shop/coupon",
            method: 'delete',
            data: {
                code: couponCode
            },
            success: function (resp) {
                if (resp.success) {
                    layer.msg("成功使用优惠券",{icon:6});
                    // 不允许再点
                    $('button[name="use-coupon"]').attr("disabled",true);
                    // 重新计算价格
                    total-=resp.data;
                    if(total<0){
                        total=0;
                    }
                    $("[data-title=order_price]").text('$' + total);

                } else {
                    layer.msg(resp.msg||"无法使用该优惠券",{icon:0});
                }
            },
            error: function () {
                layer.msg('验证优惠码时发生错误，请稍后再试。',{icon:0});
            }
        });
    });

    let $tds = $("#order_item_table>tbody>tr>.item_total_price");
    let total = 0;
    $tds.each(function () {
        let itp = $(this).text().trim();//单个订单项总价
        if (itp.startsWith('$')) {
            itp = itp.substring(1)
        }
        total += parseFloat(itp);
    })
    $("[data-title=order_price],[data-title=order_sub_price]").text('$' + total);
    // 点击提交订单，维护订单
    $(".btn-fill-out").click(function (e) {
        e.preventDefault();
        // 收获信息校验
        let name = $("#receiver-form").find("[list=name]").val();
        let phone = $("#receiver-form").find("[list=phone]").val();
        let addressId = $("#receiver-form").find("#address").val();
        let address = $("#receiver-form").find("#address>option:selected").text().trim();


        if (name == null || name === '') {
            layer.msg("收货人姓名不能为空");
        } else if (phone.length !== 11) {
            layer.msg("收货人电话不符合要求");

        } else if (address == null || address === '') {
            layer.msg("收货地址不能为空");
        } else if (!$("input[name='payment_option']:checked").is("#payRadios3")) {
            // 如果没选择支付方式，不行
            layer.msg("请选择支付方式");
        } else {//验证通过，提交订单
            const url = ctx + "/front/api/v1/shop/checkout";
            let orderId = $("#order_id").val();//获取订单主键
            let totalPay = $("[data-title=order_price]").text().trim();
            let note = $("#receiver-form").find("#note").val();
            if (totalPay.startsWith("$")) {
                totalPay = totalPay.substring(1);
            }
            $.ajax({
                url,
                method: "patch",
                data: {
                    id: orderId,
                    receiverName: name,
                    receiverPhone: phone,
                    receiverAddrId: addressId,
                    receiverAddrDetail: address,
                    note,
                    payType: "支付宝支付",
                    totalPay,
                },
                success(resp) {
                    console.log(resp);
                    if (resp.success) {
                        //     发起支付宝支付
                        layer.msg("提交订单成功，现为您跳转至支付页", {
                            icon: 1, // 图标类型
                            time: 500,
                            end: function () {
                                // 消息提示框关闭后执行的回调函数
                                location.href = ctx + "/vm/front/shop/alipay?id=" + resp.data;//跳转到结算页
                            }
                        });

                    } else {
                        layer.msg(resp.message || "提交订单失败")
                    }
                }, error(resp) {
                    if (resp.status === 401) {
                        layer.msg("账号状态为空,需要登录", {
                            icon: 0, // 图标类型，0 表示警告图标
                            time: 1000,
                            end: function () {
                                // 消息提示框关闭后执行的回调函数
                                location.href = ctx + "/vm/front/login";
                            }
                        });
                    } else {
                        layer.msg("提交订单异常");
                    }
                }

            })
        }
    })
})